package logic.rule;

import java.sql.SQLException;

import domain.Reservering;

public final class ReserveringRules  {
	

	public static void checkReservering(Reservering reservering) throws SQLException {
		/**
		 * W005 Het terugtrekken van een deelnemer moet voor de start van de reis gebeuren
		 */
		if(reservering.getCanceldatum()!=null&&reservering.getPlanning().getStartdatum().before(reservering.getCanceldatum())) {
			throw new SQLException("Annulering na startdatum reis");
		}
		
		/**
		 * W006 De annuleringdatum moet na de boekingsdatum van de reis liggen
		 * 		Deze zou nooit voor mogen komen tenzij de datuminstelling op de computer onjuist is.
		 */
		if(reservering.getCanceldatum()!=null&&reservering.getBoekingsdatum().after(reservering.getCanceldatum())) {
			throw new SQLException("Je kunt een reis niet annuleren voordat deze geboekt is");
		}
		
	}
	
	/**
	 * W008-1 Het maximum aantal deelnemers aan een reis mag niet worden overschreden.
	 */
	public static boolean checkMaxDeelnemersBereikt(Reservering reservering) {
		boolean deelnemerslimiet = false;
		
		if(reservering.getPlanning().getAantalDeelnemers()>=reservering.getPlanning().getMaxDeelnemers()) {
			deelnemerslimiet = true;
		}
		return deelnemerslimiet;
	}
	
}
